package com.hdq.mapper;

import com.github.pagehelper.Page;
import com.hdq.annotation.AutoFill;
import com.hdq.annotation.ManagerName;
import com.hdq.enumeration.OperationType;
import dto.RoleAddDTO;
import dto.RoleEditDTO;
import entity.Role;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import vo.RolePageVO;

import java.util.List;

@Mapper
public interface RoleMapper {

    /**
     * 根据id获取角色信息
     * @param id
     * @return
     */
    @Select("select * from role where id = #{id}")
    Role getRoleById(Long id);


//    查询所有角色
    @Select("select * from role where status = 1 and name != '超级管理员'")
    List<Role> selectXiaLa();

    Page<RolePageVO> select();
//    新增角色
    @Insert("insert into role (status, create_time, update_time, name, `desc`,create_manager_id,last_update_manager_id) values (#{status},#{createTime},#{updateTime},#{name},#{desc},#{createManagerId},#{lastUpdateManagerId})")
    @AutoFill(OperationType.INSERT)
    @ManagerName(OperationType.INSERT)
    void insert(Role role);
//    删除角色
    void delete(List<Long> ids);
//    修改角色
    @AutoFill(OperationType.UPDATE)
    @ManagerName(OperationType.UPDATE)
    void update(Role role);
}
